home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-04-13 | 1.3 KB | 52 lines | [TEXT/R*ch] |
- program TestResetSer;
- type
- DataBitsT = (Five, Seven, Six, Eight); {sic}
- ParityT = (OddParity, NoParity, EvenParity);
- StopBitsT = (One, OnePointFive, Two);
- {}
- var
- f : text;
- function ResetSer (Baud : longint;
- DataBits : DataBitsT;
- Parity : ParityT;
- StopBits : StopBitsT) : boolean;
- { returns true if no error, false if modem port hasn't been opened yet }
- const
- PBControl = $A004;
- noErr = 0;
- ModemOutRefNum = -7;
- SerReset = 8;
- var
- ParamBlockRec : record
- Filler : array[0..11] of integer;
- ioRefNum : integer;
- csCode : integer;
- csParam : integer
- end;
- RegRcd : record
- A : array[0..4] of longint;
- D : array[0..7] of longint
- end;
- serConfig : longint;
- begin {ResetSer}
- with ParamBlockRec do
- begin
- ioRefNum := ModemOutRefNum;
- csCode := SerReset;
- serConfig := trunc(114571.7 / baud - 1.338395)
- + 1024 * ord(DataBits)
- + 4096 * (ord(Parity) + 1)
- + 16384 * (ord(StopBits) + 1);
- csParam := loword(serConfig);
- end;
- RegRcd.A[0] := ord(@ParamBlockRec);
- generic(PBControl, RegRcd); {undocumented built-in procedure}
- ResetSer := RegRcd.D[0] = noErr;
- end; {ResetSer}
- {}
- begin {program}
- open(f, 'modem:');
- if not ResetSer(1200, Eight, NoParity, Two) then
- writeln('ResetSer failed.');
- end.
-